/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rhdtp.demopf.control;

import com.rhdtp.demopf.model.dao.UsuarioDAO;
import com.rhdtp.demopf.model.dto.Usuario;
import com.rhdtp.demopf.util.ResultTypeUtil;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;

public class Login {

    private static final Logger logger = Logger.getLogger(Login.class);
    private Usuario user;
    private UsuarioDAO usuarioDAO;
    private Date fechaActual;

    public Login() {
        this.initObjects();
    }

    private void initObjects() {
        user = new Usuario();
        fechaActual = new Date();
    }

    public String doLogin() {
        user = usuarioDAO.login(user);
        String resultado = null;

        if (user != null) {
            switch (user.getRol().getId()) {
                case 1:
                    resultado = ResultTypeUtil.ADMIN;
                    break;
            }
            FacesContext context = FacesContext.getCurrentInstance();
            context.getExternalContext().getSessionMap().put("user", user);
        } else {
            FacesContext.getCurrentInstance().addMessage("mensajes", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error:", "El usuario y/o contraseña son incorrectos"));
            resultado = ResultTypeUtil.ERROR;
            this.initObjects();
        }

        return resultado;
    }

    /**
     * @return the user
     */
    public Usuario getUser() {
        return user;
    }

    /**
     * @param user the user to set
     */
    public void setUser(Usuario user) {
        this.user = user;
    }

    /**
     * @param usuarioDAO the usuarioDAO to set
     */
    public void setUsuarioDAO(UsuarioDAO usuarioDAO) {
        this.usuarioDAO = usuarioDAO;
    }

    public Date getFechaActual() {
        return fechaActual;
    }

    public void setFechaActual(Date fechaActual) {
        this.fechaActual = fechaActual;
    }

}
